Skip to content

Fix weak_dispatch and explicit_conversion_dispatch in reference-returning overloads#13

Merged
mingxwa merged 2 commits intongcpp:mainfrom
mingxwa:user/mingxwa/ref-ret
Mar 12, 2026
Merged

Fix weak_dispatch and explicit_conversion_dispatch in reference-returning overloads#13
mingxwa merged 2 commits intongcpp:mainfrom
mingxwa:user/mingxwa/ref-ret

Conversation

@mingxwa
Copy link
Collaborator

@mingxwa mingxwa commented Mar 8, 2026

Fixes incorrect behavior in weak_dispatch and explicit_conversion_dispatch when handling reference-returning overloads.

Changes

  • Added operator T& and operator T&& to pro::details::converter, enabling implicit conversion to all valid reference types.
  • Introduced concept explicitly_convertible, built on std::reference_constructs_from_temporary semantics. A conservative fallback is provided for pre-C++23 compilers, which may reject some valid user-defined reference conversions.
  • Reworked pro::details::wildcard to reuse converter.
  • Updated pro::explicit_conversion_dispatch to correctly support reference conversions.
  • Added unit tests.

Resolves #11
Resolves #10

@mingxwa mingxwa merged commit 3ef8001 into ngcpp:main Mar 12, 2026
29 of 30 checks passed
@mingxwa mingxwa deleted the user/mingxwa/ref-ret branch March 12, 2026 15:27
mingxwa added a commit that referenced this pull request Mar 13, 2026
…eturning overloads (#13)

* Fix explicit_conversion_dispatch and weak_dispatch for reference-returning overloads

* Resolve comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants